﻿using NUnit.Framework;
using Vk.Methods.Groups;

namespace UnitTests
{
    [TestFixture]
    public class GroupsTests : TestsBase
    {
        [Test]
        [ExcludeParameters("userId")]
        [HasExtendedVersion]
        public void IsMemberTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("IsMember"), "http://vk.com/dev/groups.isMember");
        }

        [Test]
        public void GetByIdTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetById"), "http://vk.com/dev/groups.getById");
        }

        [Test]
        [ExcludeParameters("fields")]
        [HasExtendedVersion]
        public void GetTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Get"), "http://vk.com/dev/groups.get");
        }

        [Test]
        public void GetMembersTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetMembers"), "http://vk.com/dev/groups.getMembers");
        }

        [Test]
        public void JoinTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Join"), "http://vk.com/dev/groups.join");
        }

        [Test]
        public void LeaveTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Leave"), "http://vk.com/dev/groups.leave");
        }

        [Test]
        public void SearchTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Search"), "http://vk.com/dev/groups.search");
        }

        [Test]
        [HasExtendedVersion]
        public void GetInvitesTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetInvites"), "http://vk.com/dev/groups.getInvites");
        }

        [Test]
        public void GetInvitedUsersTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetInvitedUsers"), "http://vk.com/dev/groups.getInvitedUsers");
        }

        [Test]
        public void GetCatalogTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("GetCatalog"), "http://vk.com/dev/groups.getCatalog");
        }

        [Test]
        public void GetCatalogInfoTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("GetCatalogInfo"), "http://vk.com/dev/groups.getCatalogInfo");
        }

        [Test]
        public void BanUserTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("BanUser"), "http://vk.com/dev/groups.banUser");
        }

        [Test]
        public void UnbanUserTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("UnbanUser"), "http://vk.com/dev/groups.unbanUser");
        }

        [Test]
        public void GetBannedTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetBanned"), "http://vk.com/dev/groups.getBanned");
        }

        [Test]
        public void CreateTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Create"), "http://vk.com/dev/groups.create");
        }

        [Test]
        public void EditTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Edit"), "http://vk.com/dev/groups.edit");
        }

        [Test]
        public void EditPlaceTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("EditPlace"), "http://vk.com/dev/groups.editPlace");
        }

        [Test]
        public void GetSettingsTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetSettings"), "http://vk.com/dev/groups.getSettings");
        }

        [Test]
        public void GetRequestsTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("GetRequests"), "http://vk.com/dev/groups.getRequests");
        }

        [Test]
        public void EditManagerTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("EditManager"), "http://vk.com/dev/groups.editManager");
        }

        [Test]
        public void InviteTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("Invite"), "http://vk.com/dev/groups.invite");
        }

        [Test]
        public void AddLinkTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("AddLink"), "http://vk.com/dev/groups.addLink");
        }

        [Test]
        public void DeleteLinkTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("DeleteLink"), "http://vk.com/dev/groups.deleteLink");
        }

        [Test]
        public void EditLinkTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("EditLink"), "http://vk.com/dev/groups.editLink");
        }

        [Test]
        public void ReorderLinkTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("ReorderLink"), "http://vk.com/dev/groups.reorderLink");
        }

        [Test]
        public void RemoveUserTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("RemoveUser"), "http://vk.com/dev/groups.removeUser");
        }

        [Test]
        public void ApproveRequestTest()
        {
            IsSignatureUpdated(typeof (Groups).GetMethod("ApproveRequest"), "http://vk.com/dev/groups.approveRequest");
        }

        [Test]
        public void GetCallbackConfirmationCodeTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("GetCallbackConfirmationCode"), "http://vk.com/dev/groups.getCallbackConfirmationCode");
        }

        [Test]
        public void GetCallbackServerSettingsTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("GetCallbackServerSettings"), "http://vk.com/dev/groups.getCallbackServerSettings");
        }

        [Test]
        public void GetCallbackSettingsTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("GetCallbackSettings"), "http://vk.com/dev/groups.getCallbackSettings");
        }

        [Test]
        public void SetCallbackSettingsTest()
        {
            IsSignatureUpdated(typeof(Groups).GetMethod("SetCallbackSettings"), "http://vk.com/dev/groups.getCallbackSettings");
        }
    }
}
